home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / PredatorPrey / DoScrap.c < prev    next >
Text File  |  1996-06-22  |  1KB  |  76 lines

  1. /* DoScrap.c */    /*    C14 Calculator */
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. /*#include <Lists.h>*/
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11.  
  12. #include "DoScrap.h"
  13.  
  14. #include <Scrap.h>
  15.  
  16. /* global vars: */
  17. Boolean                scrapDirty;
  18. OSType                scrapType;
  19.     
  20. static short        scrapCompare;
  21.  
  22. void    DoScrapSeg()    {}
  23.  
  24. #pragma segment DoScrap
  25.     
  26. /*----------*/
  27. void ReadDeskScrap    ()
  28. {
  29.     typedef OSType    **OSTypeHandle;
  30.  
  31.     register PScrapStuff    scrap;    
  32.     long            scrapLength;
  33.     long            offset;
  34.     
  35.     scrap = InfoScrap ();
  36.     if (scrapCompare != scrap->scrapCount) {
  37.         if (scrap->scrapHandle == NULL) {
  38.             scrapType = '????';
  39.         } else {
  40.             scrapType = **((OSTypeHandle) scrap->scrapHandle);
  41.         }
  42.         TESetScrapLen (0);
  43.         if (GetScrap (NULL, 'TEXT', &offset) > 0) {
  44.             scrapLength = TEFromScrap ();
  45.         }
  46.         scrapCompare = scrap->scrapCount;
  47.     } /*if*/
  48. } /*ReadDeskScrap*/
  49.  
  50. /*----------*/
  51. void WriteDeskScrap    ()
  52. {
  53.     OSErr            errCode;
  54.     PScrapStuff        scrapPtr;
  55.  
  56.     if (scrapDirty) {
  57.         errCode = ZeroScrap ();
  58.         errCode = TEToScrap ();
  59.         scrapType = 'TEXT';
  60.         scrapDirty = false;
  61.         scrapPtr = InfoScrap ();
  62.         scrapCompare = scrapPtr->scrapCount;
  63.     } /*if*/
  64. } /*WriteDeskScrap*/
  65.  
  66. /*----------*/
  67. void InitScrap    ()
  68. {
  69.     PScrapStuff        scrapPtr;
  70.  
  71.     scrapDirty = false;
  72.     scrapPtr = InfoScrap ();
  73.     scrapCompare = scrapPtr->scrapCount + 1;
  74.     ReadDeskScrap ();
  75. } /*InitScrap*/
  76.